Thank you.
Just a note, if you commenting out the old line (8) and adding new one
do not use TAB, only spaces .....
Using TAB will make it not working ....(At least on Windows 11/Chrome)
#REPLACE
#########################
#keys+=f"{key.kid.hex}:{key.key.hex()}\n"
#########################
#WITH
#########################
keys+=f"--key {key.kid.hex}:{key.key.hex()}\n"
#########################
Support our site by donate $5 directly to us Thanks!!!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
+ Reply to Thread
Results 181 to 210 of 769
-
-
Good morning,
here is how to display the license URL in the text. in the code r.url.includes the name of the license that you use most often me https:\\widevine...etc license
my code in popup.js file :
Code:....etc drawList(requests.map(r => r['url']),'requestSearch','requestList','license'); const filteredUrl = requests.reduce((acc, r) => { if(r.url.includes('cwip-shaka')) { acc.push(r.url); } return acc;}, []); if(psshs.length==1){ document.getElementById('pssh').value=psshs[0]; } if(filteredUrl.length>=1){ document.getElementById('license').value=filteredUrl[0]; } });
[Attachment 78642 - Click to enlarge]
the problem comes in the gauss function to get the key.
Code:let vars=`pssh="${document.getElementById('pssh').value}"\n` vars+=`licUrl="${requests[userInputs['license']]['url']}"\n` vars+=`licHeaders='${requests[userInputs['license']]['headers'].replace(/\\/g, "\\\\")}'\n`
Code:let vars=`pssh="${document.getElementById('pssh').value}"\n` vars+=`licUrl="${document.getElementById('license').value}"\n` vars+=`licHeaders='${requests[document.getElementById('license').value]['headers'].replace(/\\/g, "\\\\")}'\n`
-
you can also do this:
1. Update your extension to the latest version
2. Edit in python/after.py file.
Code:# parse license challenge cdm.parse_license(session_id, licence) # get keys keys="" for key in cdm.get_keys(session_id, "CONTENT"): keys+=f"--key {key.kid.hex}:{key.key.hex()}\n" # close session, disposes of session data cdm.close(session_id) keys
[Attachment 78648 - Click to enlarge] -
Hello everyone,
I would like to know how to obtain the key to videos with links that are automatically displayed in the text with : https://bitmovin.com/demos/drm
my code in popup.js file :
Code:drawList(requests.map(r => r['url']),'requestSearch','requestList','license'); const filteredUrl = requests.reduce((acc, r) => { if(r.url.includes('cwip-shaka')) { acc.push(r.url); } return acc;}, []); if(psshs.length==1){ document.getElementById('pssh').value=psshs[0]; } if(filteredUrl.length>=1){ document.getElementById('license').value=filteredUrl[0]; } }); }
Code:async function guess(){ let pyodide = await loadPyodide(); await pyodide.loadPackage(["certifi-2024.2.2-py3-none-any.whl","charset_normalizer-3.3.2-py3-none-any.whl","construct-2.8.8-py2.py3-none-any.whl","idna-3.6-py3-none-any.whl","packaging-23.2-py3-none-any.whl","protobuf-4.24.4-cp312-cp312-emscripten_3_1_52_wasm32.whl","pycryptodome-3.20.0-cp35-abi3-emscripten_3_1_52_wasm32.whl","pymp4-1.4.0-py3-none-any.whl","pyodide_http-0.2.1-py3-none-any.whl","pywidevine-1.8.0-py3-none-any.whl","requests-2.31.0-py3-none-any.whl","urllib3-2.2.1-py3-none-any.whl"].map(e=>"wheels/"+e)) let vars=`pssh="${document.getElementById('pssh').value}"\n` if (document.getElementById('license').value.length==1){ vars+=`licUrl="${document.getElementById('license').value}"\n` vars+=`licHeaders='${[document.getElementById('license').value]['headers'].replace(/\\/g, "\\\\")}'\n` } else { vars+=`licUrl="${requests[userInputs['license']]['url']}"\n` vars+=`licHeaders='${requests[userInputs['license']]['headers'].replace(/\\/g, "\\\\")}'\n` } let pre=await fetch('python/pre.py').then(res=>res.text()) let after=await fetch('python/after.py').then(res=>res.text()) let scheme=await fetch(`python/schemes/${document.getElementById("scheme").value}.py`).then(res=>res.text()) let result = await pyodide.runPythonAsync([vars, pre, scheme, after].join("\n")); document.getElementById('result').value=result; }
Code:vars+=`licHeaders='${[document.getElementById('license').value]['headers'].replace(/\\/g, "\\\\")}'\n`
-
I made a contribution to the pssh-box-wasm project, which was a great inspiration for the development of the new version of my extension, adding the ability to convert the CDM format.
https://github.com/emarsden/pssh-box-wasm/pull/5
If you need to convert CDM format between WVD <==> Blobs, consider using this tool.
https://emarsden.github.io/pssh-box-wasm/convert/
Happy open source!Don't be stupid.Use your brain and Google.
Read the rules and documentation before asking for support about my extension. -
-
Thanks a lot FoxRefire for automatic URL detection.
[Attachment 78670 - Click to enlarge] -
@sesamap159
your screen from FF is fully different from chrome ext (this shot is from brave)
[Attachment 78672 - Click to enlarge]
or have you customized your guesser?
also i've tried to add guesser ext into my waterfox (FF based) but can't add. issue to waterfox (work only with FF) or problem only by my side ?
i've tried Install add-on from file, then load .zip file from extension panel, but i've this:
[Attachment 78673 - Click to enlarge]
also, someone confirm that mpd is still not shown in this latest rel ? -
> i've tried to add guesser ext into my waterfox (FF based) but can't add. issue to waterfox (work only with FF) or problem only by my side ?
i've tried Install add-on from file, then load .zip file from extension panel, but i've this:
Just because you did wrong act, RTFM.
https://github.com/FoxRefire/wvg/blob/next/README.md
Edit:
> also, someone confirm that mpd is still not shown in this latest rel ?
I don't intend to implement features related to downloading or decrypting content, such as obtaining mpd links, in the future.
This is because I do not want to put myself at legal risk by my extension.Don't be stupid.Use your brain and Google.
Read the rules and documentation before asking for support about my extension. -
-
Hello Foxfire,
here is how to get error message if the key is not obtained.
async function guess(){
try {
let pyodide = await loadPyodide();
await pyodide.loadPackage(["certifi-2024.2.2-py3-none-any.whl","charset_normalizer-3.3.2-py3-none-any.whl","construct-2.8.8-py2.py3-none-any.whl","idna-3.6-py3-none-any.whl","packaging-23.2-py3-none-any.whl","protobuf-4.24.4-cp312-cp312-emscripten_3_1_52_wasm32.whl","pycryptodome-3.20.0-cp35-abi3-emscripten_3_1_52_wasm32.whl","pymp4-1.4.0-py3-none-any.whl","pyodide_http-0.2.1-py3-none-any.whl","pywidevine-1.8.0-py3-none-any.whl","requests-2.31.0-py3-none-any.whl","urllib3-2.2.1-py3-none-any.whl"].map(e=>"wheels/"+e))
let vars=`pssh="${document.getElementById('pssh').valu e}"\n`
vars+=`licUrl="${requests[userInputs['license']]['url']}"\n`
vars+=`licHeaders='${requests[userInputs['license']]['headers'].replace(/\\/g, "\\\\")}'\n`
vars+=`licBody="${requests[userInputs['license']]['body']}"\n`
let pre=await fetch('python/pre.py').then(res=>res.text())
let after=await fetch('python/after.py').then(res=>res.text())
let scheme=await fetch(`python/schemes/${document.getElementById("scheme").value}.py`).th en(res=>res.text())
let result = await pyodide.runPythonAsync([vars, pre, scheme, after].join("\n"));
document.getElementById('result').value=result;
document.getElementById('result').style.color ="blue";
} catch (error) {
document.getElementById('result').value="Oops, we didn't get the key!";
document.getElementById('result').style.color ="red";
}
} -
anyone know how to fix example
keys+=f"{key.kid.hex}:{key.key.hex()}\n"
i have change to
keys+=f" --key {key.kid.hex}:{key.key.hex()}"
very perfeckt for me bud only what i mising its thad the keys not stored
without \n
anyone can help to resolve this ? -
anyone know how to fix example
keys+=f"{key.kid.hex}:{key.key.hex()}\n"
i have change to
keys+=f" --key {key.kid.hex}:{key.key.hex()}"
very perfeckt for me bud only what i mising its thad the keys not stored
without \n
anyone can help to resolve this ?
Code:# parse license challenge cdm.parse_license(session_id, licence) # get keys keys="" for key in cdm.get_keys(session_id, "CONTENT"): keys+=f"--key {key.kid.hex}:{key.key.hex()}\n" # close session, disposes of session data cdm.close(session_id) keys
-
you read what i ask
sure i know thad behind \n this will fix this problem bud than the keys its like
--key blablabla:balaklallaka
--key balaljalla:jallakajallal
bud i need other way like
--key blablabla:balaklallaka --key balaljalla:jallakajallal
after i remove this /n will show me the right
--key blablabla:balaklallaka --key balaljalla:jallakajallal
bud than missing history
ps : fixxed
popup.js
KEYS: result.split(" ").slice(0,-1)
help me out -
to have the keys on the same line.
Code:# parse license challenge cdm.parse_license(session_id, licence) # get keys keys="" for key in cdm.get_keys(session_id, "CONTENT"): keys+=f"--key {key.kid.hex}:{key.key.hex()} " # close session, disposes of session data cdm.close(session_id) keys
[Attachment 78678 - Click to enlarge] -
another issue
[Attachment 78679 - Click to enlarge]
lol very funny! anyway ok, no problem -
-
[Opinions wanted]
I'm planning to implement a feature in the extension to block requests to the license server temporarily.
License servers such as VdoCipher need to send a one-time token in the request payload, and once the token is consumed, it becomes unusable.
This feature is intended to work around that problem.
I'm currently considering adding an item like “Block acquisition and reload” to the right-click menu on the web page, which would block requests to the license server at the time of reloading.
Let me know if you have an opinion on a better way.Don't be stupid.Use your brain and Google.
Read the rules and documentation before asking for support about my extension. -
when i add to firefox which file i choose from directory and thee extention works well on chrome on many sites except “ shahid.net”
-
Good morning,
I would like to know is it possible to retrieve the .mpd link of the video?
[Attachment 78681 - Click to enlarge] -
@FoxRefire
[Opinions wanted]
@sesamap159
I would like to know is it possible to retrieve the .mpd link of the video?
With respect to having the keys listed as per N_m3u8DL-RE --key format
11111
Edit in python/after.py file.
# parse license challenge
cdm.parse_license(session_id, licence)
# get keys
keys=""
for key in cdm.get_keys(session_id, "CONTENT"):
keys+=f"--key {key.kid.hex}:{key.key.hex()} "
# close session, disposes of session data
cdm.close(session_id)
keys
and
22222
popup.js
From : KEYS: result.split("\n").slice(0,-1)
To : KEYS: result -
Also, it's a good idea to edit the manifest.json and change the version number, say something like (daymonthyear)
"version": "1.28042024", -
[Announcement]
You can now request additional custom license schemes even if you cannot write the code.
https://gist.github.com/FoxRefire/fd606ec29a9bfa1f1bef897e0dc3a231
Follow this guide.
Attention:
Requests are not guaranteed to be added.
I will decide whether or not to add a scheme based on the information I receive, based on technical ease and my mood.
If I request it, you must be willing to confirm if the my code works on requested website.
I do not want to go through the trouble of finding a VPN and registering an account to check the operation on my end.
Don't be stupid.Use your brain and Google.
Read the rules and documentation before asking for support about my extension. -
Good evening,
I would like to display the mpd link in the console log but I can't get the .mpd link?
here is the code:
Code:chrome.webRequest.onBeforeRequest.addListener( function(details) { if (details.method === "GET") { if ((url.startsWith("https") && (url.contains(".mpd")))){ chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { chrome.tabs.sendMessage(tabs[0].id, { action: "MpdUrl", mpd_url: url }, function(response) {console.log(response)}); }); } } }, {urls: ["<all_urls>"]}, ["requestMDP"] );
-
Similar Threads
-
Is this Widevine or?
By cenkoman in forum Video Streaming DownloadingReplies: 6Last Post: 28th Dec 2022, 15:15 -
Widevine help
By Stevo1987 in forum Video Streaming DownloadingReplies: 16Last Post: 27th Aug 2022, 12:08 -
OSX Mac - Chrome v83 + Widevine L3 extension
By R4p1dH0n3Y in forum Video Streaming DownloadingReplies: 5Last Post: 17th Nov 2021, 14:53 -
Widevine guesser not working
By Hammer in forum Video Streaming DownloadingReplies: 13Last Post: 4th Oct 2021, 11:26 -
widevine decrypt extension for microsoft edge not working
By takheang303 in forum Video Streaming DownloadingReplies: 6Last Post: 3rd Apr 2021, 11:46